//
// Created by DELL on 2022/4/19.
//
#pragma once
#include "VulkanDefine.h"

class AppBase
{
public:
    AppBase(int width, int height, const std::string& title = {});

    virtual ~AppBase() = default;

    virtual void run();
    virtual void initContext();
    virtual void init() = 0;
    virtual void drawFrame() = 0;
    virtual void cleanup() = 0;

protected:
    GLWindowRef window;
    Vulkan::DeviceRef device;
    Vulkan::SwapChainRef swapChain;
};

